package cn.wolfcode.luowowo.website.util;

import cn.wolfcode.luowowo.cache.util.RedisKeys;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * cookie工具类
 */
public class CookieUtil {
    //添加cookie
    public static void addCookie(String name, String value, int time, HttpServletResponse response){
        //5创建cookie对象 以token名作为name  token的值作为value
        //Cookie c = new Cookie("token",token变量对应的随机值)
        Cookie c = new Cookie("token", value);
        //设置存货时间
        c.setMaxAge(time);//30分钟
        c.setPath("/");
        response.addCookie(c);
    }

    //获取token
    public static String getToken(HttpServletRequest request,HttpServletResponse response){
        //6用户再发一次请求 假设需要进行用户登录检查(需要获取用户信息)
        //此时可以通过request对象获取所有cookie对象

        //7遍历所有cookie对象 查找name为token的cookie对象

        String token = null;
        Cookie[] cookies = request.getCookies();
        if(cookies !=null && cookies.length>0){
            for (Cookie cookie:cookies){
                if("token".equals(cookie.getName())){
                    token = cookie.getValue();

                    cookie.setPath("/");
                    //8延迟token在redis的时间  30 分钟  cookie存活时间也需要延迟30分

                    cookie.setMaxAge(RedisKeys.USER_LOGIN_TOKEN.getTime().intValue());
                    response.addCookie(cookie);
                    break;
                }
            }
        }
        return token;
    }
}
